import java.util.ArrayList;

public class test2pro{
    public static void main(String[] args) {
        int limit = 20000;
        boolean[] isPrime = new boolean[limit + 1];
        ArrayList<Integer> primes = new ArrayList<>();

        // 初始化所有数为素数
        for (int i = 2; i <= limit; i++) {
            isPrime[i] = true;
        }

        // 埃拉托斯特尼筛法
        for (int i = 2; i * i <= limit; i++) {
            if (isPrime[i]) {
                for (int j = i * i; j <= limit; j += i) {
                    isPrime[j] = false;
                }
            }
        }

        // 收集素数
        for (int i = 2; i <= limit; i++) {
            if (isPrime[i]) {
                primes.add(i);
            }
        }

        // 打印素数，每行5个
        for (int i = 0; i < primes.size(); i++) {
            System.out.print(primes.get(i) + "\t");
            if ((i + 1) % 5 == 0) {
                System.out.println();
            }
        }
    }
}

